/**
 * Copyright (C) 2011 Moss Computing <support@mosscomputing.com>
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *         http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package org.oslef.model;

import java.math.BigDecimal;
import java.util.Map;

public final class History {
	
	public static enum HistoryAction {
		DRAW,
		
		/*
		 * TODO: what is the generic loan term for a held check deposit? I forget.
		 * Something like 'forclosure' or 'exercised funds transfer authorization'.
		 * Perhaps pre-authorized-payment. PRE_AUTH_PAYMENT?
		 */
		DEPOSIT, 
		
		BOUNCE,
		PAYMENT,
		ACCRUAL,
		EXEMPTION,
		INTEREST_HALT,
		INTEREST_RESUME,
		PAYMENT_DEADLINE,
		CHARGE,
		WRITE_OFF,
		EXTENDED_PAYMENT_PLAN_EXECUTION,
	}

	public HistoryAction action;
	public SimpleInstant whenHappened;
	public SimpleInstant whenVoided;
	public BigDecimal amount;
	public Map<String, BigDecimal> accounts;
}
